home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / dox-9.1 / try.sh < prev    next >
Linux/UNIX/POSIX Shell Script  |  1995-06-22  |  12KB  |  419 lines

  1. #! /bin/sh
  2.  
  3. : '@(#)try.sh    9.1'
  4.  
  5. : 1994    Arthur David Olson
  6. :
  7. : The X Consortium, and any party obtaining a copy of these files from
  8. : the X Consortium, directly or indirectly, is granted, free of charge, a
  9. : full and unrestricted irrevocable, world-wide, paid up, royalty-free,
  10. : nonexclusive right and license to deal in this software and
  11. : documentation files {the "Software"}, including without limitation the
  12. : rights to use, copy, modify, merge, publish, distribute, sublicense,
  13. : and/or sell copies of the Software, and to permit persons who receive
  14. : copies from any such party to do so.  This license includes without
  15. : limitation a license to do the foregoing actions under any patents of
  16. : the party supplying this software to the X Consortium.
  17.  
  18. flags=
  19.  
  20. while :
  21. do
  22.     case $1 in
  23.         --)        shift ; break ;;
  24.         -display)    shift
  25.                 case $# in
  26.                     0)    set x ; break ;;
  27.                     *)    flags="$flags -display $1"
  28.                         shift ;;
  29.                 esac ;;
  30.         *)        break ;;
  31.     esac
  32. done
  33.  
  34. case $# in
  35.     0)    ;;
  36.     *)    O=`basename "$0"`
  37.         echo "$O: usage is $O" \
  38.             "[-display displayname]" \
  39.             "# 9.1" >&2
  40.         exit 1 ;;
  41. esac
  42.  
  43. DOX="dox -verbose $flags"
  44.  
  45. : "atom" is the number of a known atom
  46. : "atom_name" is the name of a known atom
  47. : "depth" is the depth of the root window
  48. : "index" and "keycode" are a known index/keycode pair
  49. : "keysym" is a known keysym
  50. : "name" is a known font
  51. : "shape" is a legitimate loadfontcursor index
  52.  
  53. atom=`xlsatoms | sed -n '1s/    .*//p'`
  54. atom_name=`xlsatoms | sed -n '1s/[^    ]*    //p'`
  55. depth=`xwininfo -root | sed -n '/Depth/s/.*[     ]//p'`
  56. index=0
  57. keycode=`xmodmap -pk | sed -n '$s/ *//;$s/ .*//p'`
  58. keysym=`xmodmap -pk | sed -n '$s/.*(//;$s/).*//p'`
  59. name=`xlsfonts | sed -n '$p'`
  60. shape=0
  61.  
  62. : Creation functions for which we do freeing at the end
  63.  
  64. bitmap=`$DOX createpixmap root 1 1 1`
  65. cursor=`$DOX createfontcursor $shape`
  66. font=`$DOX loadfont fixed`
  67. pixmap=`$DOX createpixmap root 1 1 $depth`
  68. window=`$DOX createsimplewindow root 0 0 1 1 1 black white`
  69.  
  70. : Plus one for the benefit of killclient...
  71.  
  72. resource=`$DOX createfontcursor $shape`
  73.  
  74. : And we get to prime the buffers for rotatebuffers
  75.  
  76. for i in 0 1 2 3 4 5 6 7
  77. do
  78.     $DOX storebuffer $i 1 $i
  79. done
  80.  
  81. : Other parameters used below
  82. : The 8 used in several places below is the length of "whatever"
  83.  
  84. accel_denominator=1
  85. accel_numerator=1
  86. allow_exposures=allow
  87. angle1=0
  88. angle2=0
  89. arc_mode=chord
  90. background=white
  91. background_pixel=white
  92. background_pixmap=$pixmap
  93. bg=white
  94. border=black
  95. border_pixel=black
  96. border_pixmap=$pixmap
  97. border_width=1
  98. buffer=0
  99. button=1
  100. bytes=whatever
  101. cap_style=butt
  102. change_mode=delete
  103. clip_x_origin=0
  104. clip_y_origin=0
  105. close_mode=destroyall
  106. color=white
  107. colormap=default
  108. confine_to=$window
  109. coord_mode=origin
  110. dash_list=whatever
  111. dash_offset=0
  112. data=whatever
  113. dest=$window
  114. dest_w=$window
  115. dest_x=0
  116. dest_y=0
  117. direction=raiselowest
  118. discard=true
  119. do_accel=true
  120. do_threshold=true
  121. drawable=$window
  122. event_mask=noevent
  123. event_mode=syncboth
  124. exposures=true
  125. fd=0
  126. fg=black
  127. filename=whatever
  128. fill_rule=winding
  129. fill_shape=complex
  130. fill_style=solid
  131. flags=red
  132. focus=$window
  133. foreground=black
  134. format=8
  135. function=or
  136. gc=default
  137. grab_window=$window
  138. graphics_exposures=true
  139. height=1
  140. icon_name=whatever
  141. interval=0
  142. join_style=miter
  143. keyboard_mode=sync
  144. length=8
  145. line_style=solid
  146. line_width=1
  147. modifiers=any
  148. n=8
  149. nbytes=8
  150. nelements=8
  151. only_if_exists=true
  152. option=whatever
  153. owner=$window
  154. owner_events=true
  155. parent=root
  156. percent=0
  157. pixel=0
  158. plane=1
  159. plane_mask=1
  160. pointer_mode=sync
  161. prefer_blanking=prefer
  162. program=whatever
  163. prop_window=$window
  164. property=$atom_name
  165. requestor=$window
  166. revert_to=none
  167. rotate=1
  168. screen_number=default
  169. selection=$atom_name
  170. src=$window
  171. src_height=1
  172. src_w=$window
  173. src_width=1
  174. src_x=0
  175. src_y=0
  176. stipple=$bitmap
  177. string=whatever
  178. subwindow_mode=clipbychildren
  179. target=$atom_name
  180. threshold=0
  181. tile=$pixmap
  182. time=current
  183. timeout=0
  184. ts_x_origin=0
  185. ts_y_origin=0
  186. type=$atom_name
  187. valuemask=function
  188. width=1
  189. window_name=whatever
  190. x1=0
  191. x2=0
  192. x=0
  193. x_hot=0
  194. y1=0
  195. y2=0
  196. y=0
  197. y_hot=0
  198.  
  199. : And away we go
  200.  
  201. set -x
  202.  
  203. $DOX activatescreensaver
  204. $DOX addtosaveset $window
  205. $DOX allowevents $event_mode $time
  206. $DOX autorepeatoff
  207. $DOX autorepeaton
  208. $DOX bell $percent
  209. $DOX bitmapbitorder
  210. $DOX bitmappad
  211. $DOX bitmapunit
  212. $DOX blackpixel $screen_number
  213. $DOX changeactivepointergrab $event_mask $cursor $time
  214. $DOX changepointercontrol $do_accel $do_threshold $accel_numerator $accel_denominator $threshold
  215. # "mode" changed to "propmodeappend" from the output of $DOX
  216. $DOX changeproperty $window $property $type $format propmodeappend $data $nelements
  217. $DOX changesaveset $window $change_mode
  218. $DOX circulatesubwindows $window $direction
  219. $DOX circulatesubwindowsdown $window
  220. $DOX circulatesubwindowsup $window
  221. $DOX cleararea $window $x $y $width $height $exposures
  222. $DOX clearwindow $window
  223. $DOX closedisplay
  224. $DOX connectionnumber
  225. $DOX convertselection $selection $target $property $requestor $time
  226. $DOX copyarea $src $dest $gc $src_x $src_y $width $height $dest_x $dest_y
  227. $DOX copycolormapandfree $colormap
  228. # "src" and "dest" were changed to "gc" from the output of $DOX...
  229. $DOX copygc $gc $valuemask $gc
  230. $DOX copyplane $src $dest $gc $src_x $src_y $width $height $dest_x $dest_y $plane
  231. $DOX createbitmapfromdata $drawable $data $width $height
  232. $DOX createfontcursor $shape
  233. $DOX createpixmap $drawable $width $height $depth
  234. $DOX createpixmapfrombitmapdata $drawable $data $width $height $fg $bg $depth
  235. $DOX createsimplewindow $parent $x $y $width $height $border_width $border $background
  236. $DOX defaultcolormap $screen_number
  237. $DOX defaultdepth $screen_number
  238. $DOX defaultgc $screen_number
  239. $DOX defaultrootwindow
  240. $DOX defaultscreen
  241. $DOX definecursor $window $cursor
  242. $DOX deleteproperty $window $property
  243. $DOX destroysubwindows $window
  244. : Expect error below if display is remote
  245. $DOX disableaccesscontrol
  246. $DOX displaycells $screen_number
  247. $DOX displayheight $screen_number
  248. $DOX displayheightmm $screen_number
  249. $DOX displaymotionbuffersize
  250. $DOX displayplanes $screen_number
  251. $DOX displaystring
  252. $DOX displaywidth $screen_number
  253. $DOX displaywidthmm $screen_number
  254. $DOX drawarc $drawable $gc $x $y $width $height $angle1 $angle2
  255. $DOX drawarcs $drawable $gc $x $y $width $height $angle1 $angle2
  256. $DOX drawimagestring $drawable $gc $x $y $string $length
  257. $DOX drawline $drawable $gc $x1 $x2 $y1 $y2
  258. # "mode" changed to "coord_mode" from the output of $DOX
  259. $DOX drawlines $drawable $gc $x $y $coord_mode
  260. $DOX drawpoint $drawable $gc $x $y
  261. # "mode" changed to "coord_mode" from the output of $DOX
  262. $DOX drawpoints $drawable $gc $x $y $coord_mode
  263. $DOX drawrectangle $drawable $gc $x $y $width $height
  264. $DOX drawrectangles $drawable $gc $x $y $width $height
  265. $DOX drawsegments $drawable $gc $x1 $y1 $x2 $y2
  266. $DOX drawstring $drawable $gc $x $y $string $length
  267. : Expect error below if display is remote
  268. $DOX enableaccesscontrol
  269. # "mode" changed to queuedalready from the output of $DOX
  270. $DOX eventsqueued queuedalready
  271. $DOX extendedmaxrequestsize
  272. $DOX fillarc $drawable $gc $x $y $width $height $angle1 $angle2
  273. $DOX fillarcs $drawable $gc $x $y $width $height $angle1 $angle2
  274. # "mode" changed to "coord_mode" from the output of $DOX
  275. # "shape" changed to "fill_shape" from the output of $DOX
  276. $DOX fillpolygon $drawable $gc $x $y $fill_shape $coord_mode
  277. $DOX fillrectangle $drawable $gc $x $y $width $height
  278. $DOX fillrectangles $drawable $gc $x $y $width $height
  279. $DOX flush
  280. $DOX flushgc $gc
  281. # "mode" changed to "screensaveractive" from the output of $DOX
  282. $DOX forcescreensaver screensaveractive
  283. $DOX freecolormap $colormap
  284. $DOX freegc $gc
  285. $DOX getatomname $atom
  286. $DOX getdefault $program $option
  287. $DOX getselectionowner $selection
  288. $DOX grabbutton $button $modifiers $grab_window $owner_events $event_mask $pointer_mode $keyboard_mode $confine_to $cursor
  289. $DOX grabkey $keycode $modifiers $grab_window $owner_events $pointer_mode $keyboard_mode
  290. $DOX grabkeyboard $grab_window $owner_events $pointer_mode $keyboard_mode $time
  291. $DOX grabpointer $grab_window $owner_events $event_mask $pointer_mode $keyboard_mode $confine_to $cursor $time
  292. $DOX grabserver
  293. $DOX iconifywindow $window $screen_number
  294. $DOX imagebyteorder
  295. $DOX installcolormap $colormap
  296. $DOX internatom $atom_name $only_if_exists
  297. $DOX keycodetokeysym $keycode $index
  298. $DOX keysymtokeycode $keysym
  299. $DOX killclient $resource
  300. $DOX lastknownrequestprocessed
  301. $DOX loadfont $name
  302. $DOX lockdisplay
  303. $DOX lowerwindow $window
  304. $DOX mapraised $window
  305. $DOX mapsubwindows $window
  306. $DOX mapwindow $window
  307. # maskevent is tricky...
  308. echo "
  309.     selectinput $window propertychange
  310.     changeproperty $window STRING STRING 8 replace whatever 8
  311.     changeproperty $window STRING STRING 8 replace whenever 8
  312.     maskevent propertychange
  313. " | $DOX
  314. $DOX maxrequestsize
  315. $DOX moveresizewindow $window $x $y $width $height
  316. $DOX movewindow $window $x $y
  317. # nextevent is tricky...
  318. echo "
  319.     selectinput $window propertychange
  320.     changeproperty $window STRING STRING 8 replace whatever 8
  321.     changeproperty $window STRING STRING 8 replace whenever 8
  322.     nextevent
  323. " | $DOX
  324. $DOX nextrequest
  325. $DOX noop
  326. # peekevent is tricky...
  327. echo "
  328.     selectinput $window propertychange
  329.     changeproperty $window STRING STRING 8 replace whatever 8
  330.     changeproperty $window STRING STRING 8 replace whenever 8
  331.     peekevent
  332. " | $DOX
  333. $DOX pending
  334. $DOX processinternalconnection fd
  335. $DOX protocolrevision
  336. $DOX protocolversion
  337. $DOX qlength
  338. $DOX raisewindow $window
  339. $DOX removefromsaveset $window
  340. $DOX reparentwindow $window $parent $x $y
  341. $DOX resetscreensaver
  342. $DOX resizewindow $window $width $height
  343. $DOX resourcemanagerstring
  344. $DOX rootwindow $screen_number
  345. $DOX rotatebuffers $rotate
  346. $DOX screencount
  347. $DOX selectinput $window $event_mask
  348. $DOX servervendor
  349. # "mode" changed to "enableaccess" from the output of $DOX
  350. : Expect error below if display is remote
  351. $DOX setaccesscontrol enableaccess
  352. $DOX setarcmode $gc $arc_mode
  353. $DOX setbackground $gc $background
  354. # "pixmap" changed to "bitmap" from the output of $DOX
  355. $DOX setclipmask $gc $bitmap
  356. $DOX setcliporigin $gc $clip_x_origin $clip_y_origin
  357. $DOX setclosedownmode $close_mode
  358. $DOX setdashes $gc $dash_offset $dash_list $n
  359. $DOX setfillrule $gc $fill_rule
  360. $DOX setfillstyle $gc $fill_style
  361. $DOX setfont $gc $font
  362. $DOX setforeground $gc $foreground
  363. $DOX setfunction $gc $function
  364. $DOX setgraphicsexposures $gc $graphics_exposures
  365. $DOX seticonname $window $icon_name
  366. $DOX setinputfocus $focus $revert_to $time
  367. $DOX setlineattributes $gc $line_width $line_style $cap_style $join_style
  368. $DOX setplanemask $gc $plane_mask
  369. $DOX setscreensaver $timeout $interval $prefer_blanking $allow_exposures
  370. $DOX setselectionowner $selection $owner $time
  371. $DOX setstate $gc $foreground $background $function $plane_mask
  372. $DOX setstipple $gc $stipple
  373. $DOX setsubwindowmode $gc $subwindow_mode
  374. $DOX settile $gc $tile
  375. $DOX settransientforhint $window $prop_window
  376. $DOX settsorigin $gc $ts_x_origin $ts_y_origin
  377. $DOX setwindowbackground $window $background_pixel
  378. $DOX setwindowbackgroundpixmap $window $background_pixmap
  379. $DOX setwindowborder $window $border_pixel
  380. $DOX setwindowborderpixmap $window $border_pixmap
  381. $DOX setwindowborderwidth $window $width
  382. $DOX setwindowcolormap $window $colormap
  383. $DOX storebuffer $bytes $nbytes $buffer
  384. $DOX storename $window $window_name
  385. : Expect error below
  386. $DOX storenamedcolor $colormap $color $pixel $flags
  387. $DOX sync $discard
  388. $DOX undefinecursor $window
  389. $DOX ungrabbutton $button $modifiers $grab_window
  390. $DOX ungrabkey $keycode $modifiers $grab_window
  391. $DOX ungrabkeyboard $time
  392. $DOX ungrabpointer $time
  393. $DOX ungrabserver
  394. $DOX uninstallcolormap $colormap
  395. $DOX unlockdisplay
  396. $DOX unmapsubwindows $window
  397. $DOX unmapwindow $window
  398. $DOX vendorrelease
  399. $DOX warppointer $src_w $dest_w $src_x $src_y $src_width $src_height $dest_x $dest_y
  400. $DOX whitepixel $screen_number
  401. # windowevent is tricky...
  402. echo "
  403.     selectinput $window propertychange
  404.     changeproperty $window STRING STRING 8 replace whatever 8
  405.     changeproperty $window STRING STRING 8 replace whenever 8
  406.     windowevent $window propertychange
  407. " | $DOX
  408. $DOX withdrawwindow $window $screen_number
  409. $DOX writebitmapfile $filename $bitmap $width $height $x_hot $y_hot
  410.  
  411. # Resource freeing
  412.  
  413. $DOX destroywindow $window
  414. $DOX freecursor $cursor
  415. $DOX freepixmap $bitmap
  416. $DOX freepixmap $pixmap
  417. $DOX unloadfont $font
  418. rm -f whatever
  419.